package com.shiyi.shiyiaicodefather.tool;

import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

@Component
@Slf4j
public class ToolManager {

  @Resource
  private BaseTool[] baseTools;

  //工具名称 ->工具实例的映射
  private final Map<String,BaseTool> toolMap = new HashMap<>();

  /**
   * 初始化工具映射
   */
  @PostConstruct
  public void initTools(){
    for (BaseTool baseTool : baseTools) {
      toolMap.put(baseTool.getToolName(),baseTool);
      log.info("注册工具:{}",baseTool.getDisplayName());
    }
    log.info("工具注册完成，共注册{}个工具",toolMap.size());
  }


  /**
   * 根据工具名称获取工具实例
   * @param toolName
   * @return
   */
  public BaseTool getTool(String toolName){
    return toolMap.get(toolName);
  }

  /**
   * 获取所有工具实例
   */
  public BaseTool[] getAllTools(){
      return baseTools;
  }


}
